package com.ruoyi.system.scheduler;

import com.ruoyi.system.domain.UserCoupon;
import com.ruoyi.system.mapper.UserCouponMapper;
import com.ruoyi.system.service.CouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;

/**
 * 定时任务类
 */
// 要声明为bean，没有声明启动类启动无法实现定时效果
@Component
public class SchedulerTask {
    @Autowired
    private UserCouponMapper userCouponMapper;

    //此处的逻辑是每天的凌晨两点开始定时执行任务，可根据需求修改
    @Scheduled(cron = "0 30 20 * * ?")
    private void updateStatus(){
        // 此处为定时任务的具体逻辑
        // 查询遍历优惠券，如果已过期，则修改状态
        List<UserCoupon> userCoupons = userCouponMapper.selectUserCouponList(new UserCoupon());
        for (UserCoupon userCoupon : userCoupons) {
            if (userCoupon.getExpirationEnd().getTime() > System.currentTimeMillis()) {
                // 修改优惠券状态为已过期
                userCoupon.setStatus(2L);
                userCouponMapper.updateUserCoupon(userCoupon);
            }
        }
        System.out.println("定时任务执行成功");
    }

//    @Scheduled(cron = "0 30 20 * * ?")
//    private void updateStatus(){
//        // 此处为定时任务的具体逻辑
//        // 查询遍历优惠券，如果已过期，则修改状态
//        List<UserCoupon> userCoupons = userCouponMapper.selectUserCouponList(new UserCoupon());
//        for (UserCoupon userCoupon : userCoupons) {
//            if (userCoupon.getExpirationEnd().getTime() > System.currentTimeMillis()) {
//                // 修改优惠券状态为已过期
//                userCoupon.setStatus(2L);
//                userCouponMapper.updateUserCoupon(userCoupon);
//            }
//        }
//        System.out.println("定时任务执行成功");
//    }
}
